A “data dictionary” is a repository of data types and the relationships between the data types. The term “data type” refers to information that defines the semantic and syntactic properties of operational data, such as the type, length, and relationships of operational data. The data types stored in a data dictionary may be used during both design time and runtime. The term “design time” refers to the design and development of computer software (or simply, software). The term “runtime” refers to the actual execution of software.
A conventional data dictionary may be integrated into a traditional client/server system. For example, a development client may be used to define a data type and store the defined data type in a data dictionary on the server system (or in a data source to which the server system has access). The defined data type may, for example, specify the structure of a database table for the traditional client/server system. Software executing on a client system may access the defined data type and create a database table based on the defined data type.
Traditional client/server systems are implemented with a single stack of technology from the physical layer to the application layer. In traditional single stack client/server systems a single data source (e.g., a database system) provides the data for all clients interacting with the application servers. A model in which different parts of the technology stack are implemented by different vendors is replacing the traditional single stack model. In multi-vendor implementations of client/server systems, developers may write software in more than one programming language. Conventional data dictionaries are not desirable in multi-vendor implementations of client/server systems because they store data types that are language-dependent and/or platform specific. According to one embodiment, a method for providing platform-independent data types is disclosed. The method includes receiving a request for a data type from a client system, and providing the data type to the client system in response to the request, wherein the data type includes a platform-independent data type that is independent of platforms associated with the client system.